package com.doitedu.doit30.hbase.filter;

import com.doitedu.doit30.hbase.utils.HbaseUtil;
import org.apache.hadoop.hbase.CompareOperator;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.filter.*;

/**
 * @Date 22.6.12
 * @Created by HANGGE
 * @Description
 * 过滤器是对数据的过滤
 *   条件查询 的时候
 *
 *   uid  = 1
 */
public class Demo01 {
    public static void main(String[] args)  throws  Exception{
        Connection conn = HbaseUtil.getHbaseConnection();
        Table tb_movie = HbaseUtil.getTable(conn, "tb_movie");

        Scan scan = new Scan();
        // 行  属性   列族  值
        /**
         * 参数一  比较运算符  >  <  >=  <=  =  !=
         * 参数二  比较方式   [在底层的数据存储都是二进制字节 , 上层存储的数据是有类型 ]
         *
         * 956812867  字符串底层直接使用二进制
          */
        ValueFilter filter =  new ValueFilter(CompareOperator.EQUAL ,new BinaryComparator("956812867".getBytes())) ;
        // public RowFilter(final CompareOperator op,final ByteArrayComparable rowComparator)
      //  new RowFilter()
       // public QualifierFilter(final CompareOperator op, final ByteArrayComparable qualifierComparator)
      //  new QualifierFilter()

        // 设置过滤器  过滤数据
        scan.setFilter(filter) ;

        ResultScanner scanner = tb_movie.getScanner(scan);
        for (Result result : scanner) {
            HbaseUtil.showData(result);
        }
        conn.close();
        tb_movie.close();
    }


}
